package system;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class BianPai {

    public static void ysywl(List<Map<String,Object>> datas){

        List<Map<String,Object>> opDatas=new ArrayList<>();
        opDatas.addAll(datas);

        List<Map<String,Object>> lishiDatas=new ArrayList<>();
        List<Map<String,Object>> wuliDatas=new ArrayList<>();
        Iterator<Map<String,Object>> iterator=opDatas.iterator();
        while(iterator.hasNext()){
            Map<String,Object> data=iterator.next();
            String type= (String) data.get("类型");
            if(type.contains("历")){
                lishiDatas.add(data);
            }else{
                wuliDatas.add(data);
            }
        }
        DataToKaoChang dataToKaoChang=new DataToKaoChang(lishiDatas,wuliDatas,"E:\\考试编排\\课室配置表.xlsx");
        List<KaoChang> kaoChangs=dataToKaoChang.toKaoChang(7,7,0);
        Iterator<KaoChang> iterator1=kaoChangs.iterator();
        while(iterator1.hasNext()){
            KaoChang kaoChang=iterator1.next();
            SheetWork sheetWork=new SheetWork("E:\\考试编排\\高二(上)段考一语数英历史物理.xlsx",kaoChang);
            if(kaoChang.isWorking()){
                sheetWork.creatSheet(kaoChang.getName(),"高二段考一 历史 座位安排表");
            }else{
                sheetWork.creatSheet(kaoChang.getName(),"高二段考一 自习 座位安排表");
            }
        }
        SheetData sheetData=new SheetData("E:\\考试编排\\高二(上)段考一语数英历史物理.xlsx");
        StaticNumber.init();
        List<Map<String,Object>> result=new ArrayList<>();
        sheetData.createResultSheet(opDatas,"总表","高二(上)段考一语数英历史物理座位安排表");
    }

    public static void shengwu(List<Map<String,Object>> datas){//8*54+2*48+2*42

        List<Map<String,Object>> opDatas=new ArrayList<>();
        opDatas.addAll(datas);

        List<Map<String,Object>> shengwuDatas=new ArrayList<>();
        List<Map<String,Object>> zixiDatas=new ArrayList<>();
        Iterator<Map<String,Object>> iterator=opDatas.iterator();
        while(iterator.hasNext()){
            Map<String,Object> data=iterator.next();
            String type= (String) data.get("类型");
            if(type.contains("生")){
                shengwuDatas.add(data);
            }else{
                zixiDatas.add(data);
            }
        }
        opDatas.removeAll(zixiDatas);

        SheetData sheetData=new SheetData("E:\\考试编排\\高二(上)段考一生物.xlsx");

        StaticNumber.init();

        List<Map<String,Object>> result=new ArrayList<>();

        for(int i=0;i<8;i++){
            result.addAll(sheetData.creatSheet(shengwuDatas,9,6,"第"+ StaticNumber.getA54Class()+"考场","高二(上)段考一  生物  座位表"));
        }

        for(int i=0;i<2;i++){
            result.addAll(sheetData.creatSheet(shengwuDatas,8,6,"第"+ StaticNumber.getA48Class()+"考场","高二(上)段考一  生物  座位表"));
        }

        for(int i=0;i<2;i++){
            result.addAll(sheetData.creatSheet(shengwuDatas,7,6,"第"+ StaticNumber.getA42Class()+"考场","高二(上)段考一  生物  座位表"));
        }

        for(int i=0;i<1;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,9,6,"第"+ StaticNumber.getA54Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        for(int i=0;i<8;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,8,6,"第"+ StaticNumber.getA48Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        for(int i=0;i<1;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,7,6,"第"+ StaticNumber.getA42Class()+"考场","高二(上)段考一  自习  座位表"));
        }
        
        sheetData.createResultSheet(opDatas,"总表","高二(上)段考一生物座位安排表");
    }

    public static void dili(List<Map<String,Object>> datas){//10*48

        List<Map<String,Object>> opDatas=new ArrayList<>();
        opDatas.addAll(datas);

        List<Map<String,Object>> diliDatas=new ArrayList<>();
        List<Map<String,Object>> zixiDatas=new ArrayList<>();
        Iterator<Map<String,Object>> iterator=opDatas.iterator();
        while(iterator.hasNext()){
            Map<String,Object> data=iterator.next();
            String type= (String) data.get("类型");
            if(type.contains("地")){
                diliDatas.add(data);
            }else{
                zixiDatas.add(data);
            }
        }

//        System.out.println("地理人数:"+diliDatas.size());

        opDatas.removeAll(zixiDatas);

        SheetData sheetData=new SheetData("E:\\考试编排\\高二(上)段考一地理.xlsx");

        StaticNumber.init();

        List<Map<String,Object>> result=new ArrayList<>();

        for(int i=0;i<9;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,9,6,"第"+ StaticNumber.getA54Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        for(int i=0;i<10;i++){
            result.addAll(sheetData.creatSheet(diliDatas,8,6,"第"+ StaticNumber.getA48Class()+"考场","高二(上)段考一  地理  座位表"));
        }

        for(int i=0;i<3;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,7,6,"第"+ StaticNumber.getA42Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        sheetData.createResultSheet(opDatas,"总表","高二(上)段考一地理座位安排表");
    }

    public static void huaxue(List<Map<String,Object>> datas){//6*54+3*48+42*2

        List<Map<String,Object>> opDatas=new ArrayList<>();
        opDatas.addAll(datas);

        List<Map<String,Object>> huaxueDatas=new ArrayList<>();
        List<Map<String,Object>> zixiDatas=new ArrayList<>();
        Iterator<Map<String,Object>> iterator=opDatas.iterator();
        while(iterator.hasNext()){
            Map<String,Object> data=iterator.next();
            String type= (String) data.get("类型");
            if(type.contains("化")){
                huaxueDatas.add(data);
            }else{
                zixiDatas.add(data);
            }
        }
        opDatas.removeAll(zixiDatas);

        SheetData sheetData=new SheetData("E:\\考试编排\\高二(上)段考一化学.xlsx");

        StaticNumber.init();

        List<Map<String,Object>> result=new ArrayList<>();

        for(int i=0;i<6;i++){
            result.addAll(sheetData.creatSheet(huaxueDatas,9,6,"第"+ StaticNumber.getA54Class()+"考场","高二(上)段考一  化学  座位表"));
        }

        for(int i=0;i<3;i++){
            result.addAll(sheetData.creatSheet(huaxueDatas,8,6,"第"+ StaticNumber.getA48Class()+"考场","高二(上)段考一  化学  座位表"));
        }

        for(int i=0;i<2;i++){
            result.addAll(sheetData.creatSheet(huaxueDatas,7,6,"第"+ StaticNumber.getA42Class()+"考场","高二(上)段考一  化学  座位表"));
        }

        for(int i=0;i<3;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,9,6,"第"+ StaticNumber.getA54Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        for(int i=0;i<7;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,8,6,"第"+ StaticNumber.getA48Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        for(int i=0;i<1;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,7,6,"第"+ StaticNumber.getA42Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        sheetData.createResultSheet(opDatas,"总表","高二(上)段考一化学座位安排表");
    }

    public static void zhengzhi(List<Map<String,Object>> datas){//8*54+2*48

        List<Map<String,Object>> opDatas=new ArrayList<>();
        opDatas.addAll(datas);

        List<Map<String,Object>> zhengzhiDatas=new ArrayList<>();
        List<Map<String,Object>> zixiDatas=new ArrayList<>();
        Iterator<Map<String,Object>> iterator=opDatas.iterator();
        while(iterator.hasNext()){
            Map<String,Object> data=iterator.next();
            String type= (String) data.get("类型");
            if(type.contains("政")){
                zhengzhiDatas.add(data);
            }else{
                zixiDatas.add(data);
            }
        }
        opDatas.removeAll(zixiDatas);

        SheetData sheetData=new SheetData("E:\\考试编排\\高二(上)段考一政治.xlsx");

        StaticNumber.init();

        List<Map<String,Object>> result=new ArrayList<>();

        for(int i=0;i<8;i++){
            result.addAll(sheetData.creatSheet(zhengzhiDatas,9,6,"第"+ StaticNumber.getA54Class()+"考场","高二(上)段考一  政治  座位表"));
        }

        for(int i=0;i<1;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,9,6,"第"+ StaticNumber.getA54Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        for(int i=0;i<2;i++){
            result.addAll(sheetData.creatSheet(zhengzhiDatas,8,6,"第"+ StaticNumber.getA48Class()+"考场","高二(上)段考一  政治  座位表"));
        }

        for(int i=0;i<8;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,8,6,"第"+ StaticNumber.getA48Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        for(int i=0;i<3;i++){
            result.addAll(sheetData.creatSheet(zixiDatas,7,6,"第"+ StaticNumber.getA42Class()+"考场","高二(上)段考一  自习  座位表"));
        }

        sheetData.createResultSheet(opDatas,"总表","高二(上)段考一政治座位安排表");
    }
}
